<style type="text/css">
    .coluna{
        border-right-width: inherit;
        background: menutext;
		color: white;
		font-weight: bold;
    }
</style>

<?php

class Application_Form_CadastrarSsr extends Zend_Form
{
    
    private $alelos;
	private $ssr;
	private $est;
	private $tipo;
	private $repeat;
	private $arquivo;
	private $tm;
	private $primer_r;
	private $primer_f;
	private $fasta;
	private $alelosArray;
	private $url;
	
	public function inserirValoresAtributos(array $atributos){
		$this->ssr = $atributos['marcador'];
		$this->est = $atributos['est'];
		$this->tipo = $atributos['tipo'];
		$this->repeat = $atributos['repeat'];
		$this->arquivo = $atributos['arquivo'];
		$this->tm = $atributos['tm'];
		$this->primer_r = $atributos['primer_r'];
		$this->primer_f = $atributos['primer_f'];
		$this->fasta = $atributos['fasta'];
		$this->alelos = $atributos['alelos'];
		
	}
	
	public function retornaAlelos($form, $quantidadeAlelos){
		for($i=0; $i<$quantidadeAlelos; $i++)
			$alelosNovos[$i] = $form->getValue("alelo_$i"); 
		return $alelosNovos;
	}
    public static function elementosAlelos($quantidade, $form, $alelosDb) {
        $alelo = null;
        $array = array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'openOnly' => 'true', 'class'=>'coluna'));
        for ($i = 0; $i < $quantidade; $i++) {
            if($i > 0){
                $array = array(array('row' => 'HtmlTag'), array());
            }
            if((($i+1)%4) == 0){
                $array = array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'closeOnly' => 'true'));
                
            }
            if($i == $quantidade){
                $array = array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'closeOnly' => 'true'));
            }
            //nome dos alelos
            if($i >= count($alelosDb))
            	$valor = "";
            else 
            	$valor = $alelosDb[$i];
            $alelo[$i] = $form->CreateElement('text', 'alelo_' . $i)
                    ->setLabel('Alelo '.($i +1).':')
                    //->addValidator('alnum')                               
                    ->setRequired(true)
                    ->setValue($valor)
                   	
                    //->setErrorMessages(array('required'=>'nao pode ser vazio', 'alnum'=>'Deve ser alfanumerico'))
                    ->addFilter('StringToLower');

            $alelo[$i]->setDecorators(array(
                'ViewHelper',
                'Description',
                'Errors',
                array('Label'),
                array(array('data' => 'HtmlTag'), array('tag' => 'td', 'align' => 'right', 'class'=>'coluna')),
                $array,
                    //array(array('row'=>'HtmlTag'),array('tag'=>'tr')),
            ));
        }
       
            return $alelo;
    }
    
    public function getAlelos() {
        return $this->alelos;
    }

    public function setAlelos($alelos) {
        $this->alelos = $alelos;
    }

    
    public function __construct($numAlelos=0, $arrayNomeAlelos=null, $dadosAntigos = null, $url="cadastrar?", $option=null)

   {
   		$this->url = $url;
        if($dadosAntigos != null){
        	$this->inserirValoresAtributos($dadosAntigos);
        }
        
        $this->alelos = $numAlelos;
        $this->alelosArray = $arrayNomeAlelos;
       parent::__construct($option);

       
       $this->setMethod('post');
       
       
       //Campo SSR
       $ssr=$this->CreateElement('text','ssr')
                    ->setLabel('SSR:')
                    ->setValue($this->ssr)
                    ->addValidator('alnum')
               		//->addValidator('regex', false, array('/^[a-z]+/'))
                    //->addValidator('stringLength', false, array(6, 20))
                    ->setRequired(true)
                    ->addFilter('StringToLower');

       $ssr->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                    array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),                   
                   array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'openOnly'=>'true')),
           //array(array('row'=>'HtmlTag'),array('tag'=>'tr')),
           ));
                          
       //Campo Est
       $est=$this->CreateElement('text','est')  
       				   ->setValue($this->est) 
       				   ->addValidator('alnum')
               		   ->setRequired(true)                    
                       ->setLabel('Est:');
       $est->setDecorators(array(
                   'ViewHelper',  
                   'Description',
                   'Errors',                   
                   array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),                            
                   
           ));

  

       $tipo=$this->CreateElement('text','tipo')
              		   ->setValue($this->tipo)
              	 	   ->addValidator('alnum')
               		   ->setRequired(true)	   
                       ->setLabel('Tipo');
       $tipo->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                   array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),                      
           ));
       
       $repeat=$this->CreateElement('text','repeat')
       				   ->addValidator(new Zend_Validate_Int())
               		   ->setRequired(true)
               		   ->setValue($this->repeat)
                       ->setLabel('Repeat:');
       $repeat->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                   array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),   
                   array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'closeOnly'=>'true')),
           ));
       
       //segunda linha da tabela
       
       $arquivo=$this->CreateElement('text','arquivo')
         			   ->addValidator('alnum')
               		   ->setRequired(true)
       				   ->setValue($this->arquivo)
                       ->setLabel('Arquivo:');
       $arquivo->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                    array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),                   
                   array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'openOnly'=>'true')),
           //array(array('row'=>'HtmlTag'),array('tag'=>'tr')),
           ));
       
       //Campo Est
       $tm=$this->CreateElement('text','tm')
       				   ->addValidator('alnum')
               		   ->setRequired(true) 
              		   ->setValue($this->tm)                      
                       ->setLabel('TM:');
       $tm->setDecorators(array(
                   'ViewHelper',  
                   'Description',
                   'Errors',                   
                   array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),                            
                   
           ));

  

       $alelos=$this->CreateElement('text','alelos')
       				   ->addValidator(new Zend_Validate_Int())
               		   ->setRequired(true)              		   
                       ->setLabel('Alelos')
                       ->setValue($this->alelos);
                       
                        //
                        //->setAttrib('size', 50)
                       //->setAttrib('maxLength', 45);
                       
       $alelos->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                   array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right')),   
                    
           ));

          
       $link=$this->CreateElement('button','n_alelos')
                       ->setLabel('Insira os nomes dos alelos')
         			
                       ->setAttrib('onclick', "window.location.href = '$this->url&acao=addAlelos&alelos='+alelos.value");
                        //
                        //->setAttrib('size', 50)
                       //->setAttrib('maxLength', 45);
                       
       $link->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',                   
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'center')),   
                    array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'closeOnly'=>'true')),
           ));
       
       //criacao de elementos
                $alelosNovos = Application_Form_CadastrarSsr::elementosAlelos($this->alelos, $this,$this->alelosArray);
           
       //primers
       
       $primer_r=$this->CreateElement('text','primer_r')
        			   ->addValidator('alnum')
               		   ->setRequired(true)
              		   ->setValue($this->primer_r)
                       ->setLabel('Primer R:')
                       //->addValidator('alnum')
               		   //->addValidator('regex', false, array('/^[a-z]+/'))
	                   //->addValidator('stringLength', false, array(6, 20))
                       //->addFilter('StringToLower')
               		   ->setAttrib('size', 50)
                       ->setAttrib('maxLength', 45);

       $primer_r->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                    array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right', 'colspan'=>'2')),                   
                    array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'openOnly'=>'true')),
           //array(array('row'=>'HtmlTag'),array('tag'=>'tr')),
           ));
       
       $primer_f=$this->CreateElement('text','primer_f')
       				   ->addValidator('alnum')
               		   ->setRequired(true)
       				   ->setValue($this->primer_f)     
                       ->setLabel('Primer F')
                       //->setRequired(true)
                       ->setAttrib('size', 50)
                       //->setErrorMessages(array('required'=>'campo obrigat�orio'))
                       ->setAttrib('maxLength', 45);
                       
       $primer_f->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',     
                   array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'align'=>'right', 'colspan'=>'2')),   
                    array(array('row'=>'HtmlTag'),array('tag'=>'tr', 'closeOnly'=>'true')),
           ));
       
       
       //Fasta
       $fasta = new Zend_Form_Element_Textarea('fasta');
        $fasta->setLabel('Fasta:')
       		->setValue($this->fasta)        
            ->setRequired(true)
            ->setAttrib('COLS', '129')
            ->setAttrib('ROWS', '4');
       

       $fasta->setDecorators(array(
                   'ViewHelper',
                   'Description',
                   'Errors',
                    array('Label'),
                    array(array('data'=>'HtmlTag'), array('tag' => 'td', 'colspan'=>'4', 'align'=>'right')),                   
                    array(array('row'=>'HtmlTag'),array('tag'=>'tr')),
           //array(array('row'=>'HtmlTag'),array('tag'=>'tr')),
           ));
       $submit=$this->CreateElement('submit','submit')


                       ->setLabel('Cadastrar');

  

       $submit->setDecorators(array(

  

               'ViewHelper',

               'Description',
               
               'Errors',                
                array(array('data'=>'HtmlTag'), array('tag' => 'td',

               'colspan'=>'4','align'=>'right')),

               array(array('row'=>'HtmlTag'),array('tag'=>'tr'))

  

       ));

  

       $this->addElements(array(
               $ssr, 
               $est,
               $tipo,               
               $repeat,
               $arquivo,
               $tm,
               $alelos,
               $link,
              
           ));
if($this->alelos != 0)$this->addElements($alelosNovos);
 
$this->addElements(array(
               $primer_r,
               $primer_f,
               $fasta,
               $submit,
           ));

       $this->setDecorators(array(

  

               'FormElements',

               array(array('data'=>'HtmlTag'),array('tag'=>'table', 'border'=>'1', 'cellspacing'=>'0', 'cellpadding'=>'0','class'=>'coluna')), 
               
               'Form'

  

       ));
       //$this->addSubForm(new Application_Form_Alelos(), 'sds');



   }

}